﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using FrameworkLib.Utilities.Export;
using System.ComponentModel.DataAnnotations;
using GestionePolveriLib.BL.Metadata;

namespace GestionePolveriLib.BL
{
    [Serializable]
    [MetadataType(typeof(Movimento2Metadata))]
    public class Movimento //: FrameworkLib.BLL.BLLObjectBase
    {
        //[Browsable(false)]
        public long IDMovimento { get; set; }

        [DisplayName("Data Movimento")]
        public DateTime DataMovimento { get; set; }

        [DisplayName("Data Reg")]
        public DateTime? DataRegistrazione { get; set; }

        [DisplayName("Num. DDT")]
        public string NumDdt { get; set; }

        [DisplayName("Data DDT")]
        public DateTime DataDdt { get; set; }

        [DisplayName("Codice Polvere")]
        public string CodicePolvere { get; set; }

        [DisplayName("Codice Lotto")]
        public string CodiceLotto { get; set; }

        [DisplayName("Famiglia")]
        public string FamiglieColori { get; set; }

        [Browsable(true)]
        [DisplayName("Colori abbinati")]
        public string ColoriAbbinati { get; set; }

        [Display(Name = "Formato", Order = 15)]
        public string Formato { get; set; }

        [DisplayName("Num. Scatole")]
        public double NumScatole { get; set; }

        public double Quantita { get; set; }

        [DisplayName("Note Movimento")]
        public string Note { get; set; }

        //[Browsable(false)]
        [DisplayName("Data Scad. Lotto")]
        public DateTime DataScadenzaLotto { get; set; }

        [DisplayName("Giacenza Iniziale")]
        public double GiacenzaIniziale { get; set; }

        [DisplayName("Giacenza")]
        public double GiacenzaFinale { get; set; }

        [Browsable(false)]
        public int IDCausale { get; set; }

        [Browsable(false)]
        public string CodCausale { get; set; }
       
        [Browsable(false)]
        public int IDPolvere { get; set; }
                
        [Browsable(false)]
        public short IDFormato { get; set; }  

        [Browsable(false)]
        public Guid? IDOperatore { get; set; }

        [DisplayName("Operatore")]
        [Browsable(false)]
        public string Operatore { get; set; }

        [Browsable(false)]
        public long IDLotto { get; set; }
                
        [Browsable(false)]
        public int? IDImpianto { get; set; }
        
        [Browsable(false)]
        public string Impianto { get; set; }

        //informazioni della tab lotti

        [Browsable(false)]
        [DisplayName("Valore")]
        public double ValoreFinale { get; set; }

        [Browsable(false)]
        public double PrezzoUnitario { get; set; }

        [Browsable(false)]
        public double Giacenza { get; set; }
        
        //[Browsable(false)]
        //public double Valore { get; set; }

        [Browsable(false)]
        [DisplayName("Num. fattura")]
        public string NumFattura { get; set; }
        
        [Browsable(false)]
        [DisplayName("Data fattura")]
        public DateTime? DataFattura { get; set; }

        [Browsable(false)]
        public int? IDFamiglia { get; set; }
        
        [Browsable(false)]
        public string Famiglia { get; set; }

        [Browsable(false)]
        public bool SottoScortaFlag { get; set; }
        
        [Browsable(false)]
        public bool GiacenzaInsufficienteFlag { get; set; }

        [Browsable(false)]
        public int? IDCausaleScarico { get; set; }
        
        [Browsable(false)]
        public string CausaleScarico { get; set; }

        //
        public Movimento()
        {

        }
    }
}
